home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "IDBAS_SystemInformation"
- Option Explicit
-
- Type SYSTEM_INFO
- dwOemID As Long
- dwPageSize As Long
- lpMinimumApplicationAddress As Long
- lpMaximumApplicationAddress As Long
- dwActiveProcessorMask As Long
- dwNumberOrfProcessors As Long
- dwProcessorType As Long
- dwAllocationGranularity As Long
- dwReserved As Long
- End Type
-
- Type OSVERSIONINFO
- dwOSVersionInfoSize As Long
- dwMajorVersion As Long
- dwMinorVersion As Long
- dwBuildNumber As Long
- dwPlatformId As Long
- szCSDVersion As String * 128
- End Type
-
- Type MEMORYSTATUS
- dwLength As Long
- dwMemoryLoad As Long
- dwTotalPhys As Long
- dwAvailPhys As Long
- dwTotalPageFile As Long
- dwAvailPageFile As Long
- dwTotalVirtual As Long
- dwAvailVirtual As Long
- End Type
-
- Enum OsVersion
- Windows32s = 0
- Windows95 = 1
- WindowsNT = 2
- End Enum
-
- 'The following three Declare lines must be each entered on a single
- 'line.
- Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation As OSVERSIONINFO) As Long
- Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
- Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO)
-
- Public Const PROCESSOR_INTEL_386 = 386
- Public Const PROCESSOR_INTEL_486 = 486
- Public Const PROCESSOR_INTEL_PENTIUM = 586
- Public Const PROCESSOR_MIPS_R4000 = 4000
- Public Const PROCESSOR_ALPHA_21064 = 21064
-
- Dim msg As String ' Status information.
- Dim NewLine As String ' New-line.
- Dim ret As Integer ' OS Information
- Dim ver_major As Integer ' OS Version
- Dim ver_minor As Integer ' Minor Os Version
- Dim Build As Long ' OS Build
- Dim verinfo As OSVERSIONINFO
- Dim sysinfo As SYSTEM_INFO
- Dim memsts As MEMORYSTATUS
- Dim memory As Long
- Dim OsType As OsVersion
-
-
- Function SystemInformation() As String
-
- NewLine = Chr(13) + Chr(10) ' New-line.
- ' Get operating system and version.
- verinfo.dwOSVersionInfoSize = Len(verinfo)
- ret = GetVersionEx(verinfo)
- If ret = 0 Then
- MsgBox "Error Getting Version Information"
- End
- End If
-
- Select Case verinfo.dwPlatformId
- Case 0
- msg = msg + "Windows 32s "
- OsType = Windows32s
- Case 1
- msg = msg + "Windows 95 "
- OsType = Windows95
- Case 2
- msg = msg + "Windows NT "
- OsType = WindowsNT
- End Select
-
- ver_major = verinfo.dwMajorVersion
- ver_minor = verinfo.dwMinorVersion
- Build = verinfo.dwBuildNumber
- msg = msg & ver_major & "." & ver_minor
- msg = msg & " (Build " & Build & ")" & NewLine & NewLine
-
- ' Get CPU type and operating mode.
- GetSystemInfo sysinfo
- msg = msg + "CPU: "
- Select Case sysinfo.dwProcessorType
- Case PROCESSOR_INTEL_386
- msg = msg + "Intel 386" + NewLine
- Case PROCESSOR_INTEL_486
- msg = msg + "Intel 486" + NewLine
- Case PROCESSOR_INTEL_PENTIUM
- msg = msg + "Intel Pentium" + NewLine
- Case PROCESSOR_MIPS_R4000
- msg = msg + "MIPS R4000" + NewLine
- Case PROCESSOR_ALPHA_21064
- msg = msg + "DEC Alpha 21064" + NewLine
- Case Else
- msg = msg + "(unknown)" + NewLine
- End Select
-
- msg = msg + NewLine
-
- ' Get free memory.
- GlobalMemoryStatus memsts
- memory = memsts.dwTotalPhys
- msg = msg + "Total Physical Memory: "
- msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
- memory = memsts.dwAvailPhys
- msg = msg + "Available Physical Memory: "
- msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
- memory = memsts.dwTotalVirtual
- msg = msg + "Total Virtual Memory: "
- msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
- memory = memsts.dwAvailVirtual
- msg = msg + "Available Virtual Memory: "
- msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
-
- SystemInformation = msg
- End Function
-
- Public Function OperatingSystemVersion() As OsVersion
- Call SystemInformation
- OperatingSystemVersion = OsType
- End Function
-